package com.cpp.pojo.vo.summary;

import lombok.Data;
import org.springframework.ai.tool.annotation.ToolParam;

import java.util.List;

@Data
public class ExamReport {

    // 存储考试概况的信息
    @ToolParam(description = "考试概况信息")
    private ExamOverview examOverview;
    // 存储各题型得分率的信息
    @ToolParam(description = "各题型得分率信息")
    private TypeScoreRates typeScoreRates;
    // 存储错题分析的信息
    @ToolParam(description = "错题分析信息")
    private List<ErrorAnalysis> errorAnalysis;
    // 存储教学建议的信息
    @ToolParam(description = "教学建议信息")
    private List<String> teachingSuggestions;

    /**
     * ExamOverview类用于封装考试概况信息
     */
    @Data
    public static class ExamOverview {
        // 考试标题
        @ToolParam(description = "考试标题")
        private String examTitle;
        // 参考总人数
        @ToolParam(description = "参考总人数")
        private int totalStudents;
        // 平均分
        @ToolParam(description = "平均分")
        private int avgScore;
        // 最高分
        @ToolParam(description = "最高分")
        private int maxScore;
        // 最低分
        @ToolParam(description = "最低分")
        private int minScore;
    }

    /**
     * TypeScoreRates类用于封装各题型得分率信息
     */
    @Data
    public static class TypeScoreRates {
        // 主观题得分率
        private int openEnded;
        // 简答题得分率
        private int shortAnswer;
        // 单选题得分率
        private int singleChoice;
        // 多选题得分率
        private int multipleChoice;
    }

    /**
     * ErrorAnalysis类用于封装错题分析信息
     */
    @Data
    public static class ErrorAnalysis {
        // 知识点
        private String knowledgePoint;
        // 常见错误列表
        private List<String> commonMistakes;
        // 建议
        private String suggestion;
    }

}